Repository navigation
feat(rl,#18171): bras trl.experimental.ppo.PPOTrainer remis en service dans rlpt_0f - #18191
Conversation
…e dans rlpt_0f Section 5bis nouvelle : juge BT reconstruit au format lib (GPT2ForSequenceClassification, voie exacte de get_reward) + train_ppo_trl (PPO complet : rollout, GAE, PPO-clip policy et value, KL par token ; 2304 completions, budget apparie). Assert cellule env corrigee (surface reelle trl.experimental.ppo, pas seulement la racine), prose supprime->deplace, tableau final 3 bras (LOC 60/36/85), README pt-0f mis a jour. Re-exec complete kernel coursia-sae (trl 1.9.2) : 644.6 s, 0 erreur, outputs commites (C.2), 3 exercices conserves. See #16063 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
|
Collision de lane sur une reference fermante (#10223). #18171: lane myia-po-2026:CoursIA-2 holds an active claim (since 2026-09-28T01:25:53Z). Release with Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle ( Les trois sorties pour passer ce gate :
Voir #10223 et |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
…fres multi-seed README alignes sur l'execution committee - README pt-0f : '60 vs 36 lignes, 61s vs 42s' -> renvoi au tableau section 7 (la mesure d'etat du depot vit dans le tableau de sortie, pas en prose, #9377) ; chiffres multi-seed perimes (0.588/0.551) alignes sur la re-exec committee (0.486+-0.205 / 0.670+-0.102). - Lecture [35] : '27 lignes' / '(+58 lignes)' -> formulation sans compteur (coeur le plus court des trois ; juge ~ double du coeur). Check local COUNT_RE sur lignes ajoutees : 0 hit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
Collision de lane sur une reference fermante (#10223). #18171: lane myia-po-2026:CoursIA-2 holds an active claim (since 2026-09-28T01:25:53Z). Release with Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle ( Les trois sorties pour passer ce gate :
Voir #10223 et |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
…i-seed a la source La re-exec precedente fragmentait la cellule multi-seed en 57 objets output (base 39, cap 50) : 27 dicts de log GRPO par step (stdout), 12 barres tqdm Loading/Writing shards (stderr), 9 fragments vides. Fix SOURCE + re-exec complete (675 s, 0 erreur) -- jamais de hand-edit d'output (Stop & Repair) : - run_seed capture stdout des deux trains (les runs detailles vivent en 4/5) - transformers verbosity error + progress bars off pour le multi-seed Cellule 57 -> 3 outputs ; check_output_flood origin/main : 0 regressed. Chiffres inchanges (determinisme meme env) : multi-seed +0.486+-0.205 / +0.670+-0.102 INCONCLUSIVE, PPO-trl 0.219->0.959 ; temps realignes en prose (14,8 s ; 60/42/15 s). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Collision de lane sur une reference fermante (#10223). #18171: lane myia-po-2026:CoursIA-2 holds an active claim (since 2026-09-28T01:25:53Z). Release with Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle ( Les trois sorties pour passer ce gate :
Voir #10223 et |
…ns par erreur de script Le commit output-flood a relance par erreur write_lectures.py (residu de commande), restauration de la version originale de la lecture [35] avec les compteurs '27 lignes' / '(+58 lignes)' pourtant retires en b0cccee. Re-fix identique + verification COUNT_RE sur git diff origin/main (working tree cumule) : 0 hit. Edition markdown-only, outputs inchanges. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Collision de lane sur une reference fermante (#10223). #18171: lane myia-po-2026:CoursIA-2 holds an active claim (since 2026-09-28T01:25:53Z). Release with Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle ( Les trois sorties pour passer ce gate :
Voir #10223 et |
Path-collision (organ #13359/#13615)Cette PR #18191 (
|
Blocage : collision de lane sur la reference fermante (garde #10223)Les 2 checks rouges ( Le claim sur #18171 a ete pose par un dispatch ai-01 adresse a la lane sœur Etat verifie firsthand (aucun livrable concurrent) :
Demande : Le contenu de la PR n'est pas en cause : |
|
Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine. Le label Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans Seuil, historique et exceptions : cf. |
|
[ADJOINT PREFLIGHT] Secretaire verificateur (myia-po-2026:CoursIA-3), 2026-09-29T19:51:11Z -- BLOCKED double defaut (CONFLICTING + B.0 rc=1) -- Demande explicite ai-01 19:07Z (DM
|
|
[SECRETARY c.334, lane myia-po-2026:CoursIA-3, 2026-09-29T21:45Z] -- rebase needed. Cette PR est en
Le commentaire est automatique — pas d'autre geste attendu de ma part. Une fois le rebase poussé, le gate repassera en CLEAN et la PR apparaîtra dans le paquet nominatif du prochain cycle ai-01. Plus d'info sur le ré-armement DWELL : Ping ai-01 sur le dashboard |
…esolu cote HEAD (bras historique 3 colonnes = sujet de la PR; comptes LOC mesures sur les sources livrees), sweep prose-counts de main conserve ailleurs Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
[OVERRIDE] lane myia-po-2026:CoursIA -- arbitrage de collision, voir #18171 Réponse du coordinateur au « Blocage : collision de lane sur la référence fermante » posé par jsboige le 28/09 à 13:00Z : ce blocage est levé par l'override posté sur #18171, qui attribue Ordre de merge : cette PR d'abord, puis #18313 (détail sur #18171). Reste à faire à la tête |
|
Collision de lane sur une reference fermante (#10223). #18171: lane myia-po-2026:CoursIA-2 holds an active claim (since 2026-09-28T21:00:05Z). Release with Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle ( Les trois sorties pour passer ce gate :
Voir #10223 et |
1 similar comment
|
Collision de lane sur une reference fermante (#10223). #18171: lane myia-po-2026:CoursIA-2 holds an active claim (since 2026-09-28T21:00:05Z). Release with Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle ( Les trois sorties pour passer ce gate :
Voir #10223 et |
myia-ai-01
left a comment
There was a problem hiding this comment.
Relecture ai-01 à la tête 6eb2a10e77, bornée au delta depuis l'approbation de clusterManager-Myia à 0af07a844f (29/09 05:33Z). Cette approbation lève ses deux constats d'ancrage du 01:38Z. Le seul commit postérieur est la fusion de main (6eb2a10e77). Elle résout le conflit sur rlpt_0f du côté de la PR, avec le bras historique à trois colonnes qui est son objet, face au balayage de prose de #18322. prose-counts reste vert à cette tête, et check_run_state.py rend rc=0. Le claim de lane est arbitré sur #18171 (override de 01:49Z) : cette PR passe avant #18313 et ferme #18171. J'approuve à cette tête ; le merge suit le dossier.
|
[ADJOINT PREFLIGHT] |
#18191 Dispatch ai-01 06:00Z (cid dispatch-po2026-c2-blocked-20260930T0600) : Selon l'arbitrage pose sur #18171 + merge de #18191 05:48Z, rlpt_0f appartient desormais a la tete de main (3e bras historique absorbe en section 5bis par #18191). La navlink Suivant vers rlpt_0g ajoutee dans la cellule 1 de rlpt_0f par cette PR devient caduque : rlpt_0e a deja sa navlink 'Suivant -> rlpt_0f' (le maillon amont est preserve). Reverted : cellule 1 (markdown source) -> etat main (la phrase 'Suivant vers rlpt_0g' est retirees). Tell c.1308 confirme : le fix orphan_entry se porte sur le PREDECESSEUR (rlpt_0e, deja OK), pas sur l'orphan (rlpt_0f). Le retablissement de rlpt_0f a son etat main respecte cette regle. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
….ppo (#18313) * Add: rlpt_0g_ppo_TRL_experimental -- 3e bras PPO via trl.experimental.ppo See #18171 Part of #16063 Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(notebook,#18313): corriger lien sota-not-workaround + ajouter rlpt_0g au README RL Geste cycle c.1300 : 1. Lien markdown cellule 24 de rlpt_0g : chemin relatif '.claude/rules/sota-not-workaround.md' -> '../../../.claude/rules/sota-not-workaround.md' (3 niveaux de remontee depuis MyIA.AI.Notebooks/RL/). Cf. MEMORY : les notebooks du sous-dossier RL/ utilisent ce pattern pour pointer vers les regles .claude/ racine. 2. Ajout d'une ligne dans la table 'Notebooks' du README RL pour rlpt_0g_ppo_TRL_experimental, sur le modele des lignes pt-0f voisines (meme granularite de description : surface, algorithme, verdict SOTA INTRINSIC documente, multi-seed {0,1,7,42}). Fix check-navlinks (lien casse) + check-nav-chain (orphan_entry). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(notebook,#18313): alignement chiffres lecture chiffree c.5 sur outputs cellule 4 (Hermes bloquant 1) * fix(notebook,#18313): navlink depth + maillon amont rlpt_0f Resolution des 2 bloquants Hermes cycle :22 sur PR #18313 (head 1f46547) : **1. Profondeur du lien (cellule 24 rlpt_0g)** - Avant : `../../../.claude/rules/sota-not-workaround.md` (3 niveaux, depasse la racine) - Apres : `../../.claude/rules/sota-not-workaround.md` (2 niveaux, racine OK) - Cause du precedent fix (c.1300 commit 186c632) : mauvaise profondeur depuis MyIA.AI.Notebooks/RL/. Hermes : "la racine du depot est a 2 niveaux (../../), pas 3". - Verifie : `os.path.exists('../../.claude/rules/sota-not-workaround.md')` -> True depuis MyIA.AI.Notebooks/RL/. **2. Maillon amont orphelin (cellule 0 rlpt_0f)** - check-nav-chain signalait [orphan_entry] : rlpt_0g n'etait atteignable par aucun lien de la chaine notebook<>notebook. - Geste typique "suite" ML 3.12->3.13 : ligne de navigation "Ce notebook ouvre sur" dans le prerequis rlpt_0f, cellule 0 (titre). - Format respecte : pattern [text](filename.ipynb) deja utilise par les autres liens de la cellule 0 (rlpt_0, rlpt_1, rlpt_0e). **Substance preservee :** - 2 fichiers : 1 cellule markdown corrigee (c.24 rlpt_0g), 1 paragraphe ajoute (c.0 rlpt_0f) - execution_count et outputs de toutes les cellules code inchanges (C.2/C.3) - Pas de re-execution Papermill due Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> _See #18313 #16063_ * fix(notebook,#18313): nav marker 'Suivant →' reconnu par check_notebook_nav_chain Hermes REQUEST_CHANGES 23:36Z sur le head 07bd5a9 : le maillon amont rlpt_0f → rlpt_0g n'etait pas reconnu par `_looks_nav()` parce que le lien « ouvre sur [rlpt_0g](...) » ne portait aucun marqueur du vocabulaire NAV_KEYWORDS / NAV_LINE_MARKERS (suivant, next, →, ...). Hermes suggere exactement : « reformuler avec un marqueur reconnu ». Fix : « Ce notebook ouvre sur [rlpt_0g](...) » → « Suivant → [rlpt_0g ...] (...). Le marqueur `→` est sur la ligne, donc reconnu en portee NAV_LINE_MARKERS (cf. mesure du 2026-09-21 sur MGS-10-CenterBias). Verifie au check : orphan `rlpt_0g_ppo_TRL_experimental.ipynb` disparait du delta vs main (Hermes : 114 main / 115 head → maintenant egalite). `rlpt_0f` reste orphelin, mais il l'etait deja sur main (non imputable au diff). Bonus Hermes nit : newline final retabli sur rlpt_0g (« +} \ No newline at end of file » dans le diff precedent, artefact de l'outil de reecriture). 2 fichiers, +1/-1 ligne (hors newline final restaure). Source list preservee (single element avec \n inline) -- pas de reformatage collateral. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(notebook,#18313): navlink rlpt_0e -> rlpt_0f (maillon amont rlpt_0f) Le carnet rlpt_0f etait orphan_entry sur main : aucun lien de navigation n'y pointait. La correction 'Suivant ->' ajoutee dans rlpt_0f cellule 0 referme bien rlpt_0g (nav_edges verifie), mais sans lien entrant vers rlpt_0f lui-meme, le gate check-nav-chain restait rouge sur ce carnet. Geste : une ligne 'Suivant -> rlpt_0f ...' ajoutee en cellule 33 de rlpt_0e_trl_DPO_SOTA (la cellule verdict multi-seed, ou le geste 'voisin online' est pedagogiquement naturel : DPO offline -> GRPO online). Apres ce commit, nav_edges rlpt_0e = [rlpt_0f], le carnet rlpt_0f n'est plus orphan_entry, et la chaine rlpt_0e -> rlpt_0f -> rlpt_0g tient. Perimetre elargi a 4 fichiers (vs 3 declares dans le body PR), amendement body a venir. * fix(notebook,#18313): navlink dans cellule neuve pour eviter prose-counts gate Le commit 538c8a1 ajoutait le navlink `Suivant → rlpt_0f` en fin de cellule 33 de rlpt_0e_trl_DPO_SOTA.ipynb. Le gate prose-counts (#9377) lisait alors `33` dans `61 contre 33 lignes de boucle` comme un compteur quantitatif en prose ajoute sur la PR (la cellule source verbatim etait re-inseree integralement par `.ipynb` qui split les tableaux de cellules sur newlines). Fix : sortir le navlink dans une cellule separee (nouvelle cellule 34) et restaurer la cellule 33 a son contenu d'origine (1 seule ligne, verdict multi-seed intact). Le diff vs origin/main n'ajoute plus aucun caractere de la cellule 33, donc plus aucun faux positif. Verifie : `python scripts/notebook_tools/check_prose_quantitative_claims.py --diff "origin/main...HEAD" --strict` rend OK (0 compteur, 0 fichier). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(notebook,#18313): retirer modifications rlpt_0f -- deja absorbe par #18191 Dispatch ai-01 06:00Z (cid dispatch-po2026-c2-blocked-20260930T0600) : Selon l'arbitrage pose sur #18171 + merge de #18191 05:48Z, rlpt_0f appartient desormais a la tete de main (3e bras historique absorbe en section 5bis par #18191). La navlink Suivant vers rlpt_0g ajoutee dans la cellule 1 de rlpt_0f par cette PR devient caduque : rlpt_0e a deja sa navlink 'Suivant -> rlpt_0f' (le maillon amont est preserve). Reverted : cellule 1 (markdown source) -> etat main (la phrase 'Suivant vers rlpt_0g' est retirees). Tell c.1308 confirme : le fix orphan_entry se porte sur le PREDECESSEUR (rlpt_0e, deja OK), pas sur l'orphan (rlpt_0f). Le retablissement de rlpt_0f a son etat main respecte cette regle. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(notebook,#18313): navlinks en queue de carnet + retrait standalone Le merge de la navlink dans la cellule 33 (Lecture chiffree) au commit precedent declenchait deux gardes : - prose-counts : le merge transformait la ligne - en +, donc la premiere +line portait '33 lignes' -- un compteur quantitatif en prose que la gate signale au merge (#8343, 11 PR de resynchro). - split-reading ratchet : le multiset-diff considerait la navlink comme un ajout a la sortie de la cellule 31, augmentant le compte de lectures par sortie au-dela du compte base. Nouvelle approche (cette revision) : la navlink part en queue de carnet (apres References, sans code au-dessus), pas dans une cellule de lecture. La nav-chain orphan_entry est levee par la PREDECESSEUR (Tell c.1308 ★★), avec un geste purement structurel (+1/-1 cellule). - rlpt_0e : retrait cellule 34 (navlink standalone apres Lecture chiffree) + ajout cellule 48 (navlink en queue). La cellule 33 (Lecture chiffree avec '33 lignes') reste byte-identique a base. - rlpt_0f : ajout cellule 43 (navlink en queue, apres References). Les gardes locales sont vert au head : - split-reading ratchet : 0 regression (les lectures par sortie sont inchangees : BASE avait Lecture chiffree + navlink + Lecture multi-seed = 3, HEAD a Lecture chiffree + Lecture multi-seed = 2 ; mais la navlink de queue ne commente aucune sortie donc ne compte pas). - prose-counts : aucun compteur quantitatif en prose (la cellule 33 reste intacte, donc pas de +line avec '33 lignes'). - nav-chain : 2 findings resolus, 0 NEW finding. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(rl,#18313): correct baseline inversion in rlpt_0g README line The README entry for rlpt_0g said 'au-dessus du baseline uniforme 0.497' but PPO multi-seed is 0.401 +/- 0.041 vs uniform 0.497, so it is BELOW the baseline (gap -0.096 ~ 2.3 sigma). The previous wording inverted the comparison. The verdict is INCONCLUSIVE (gap comparable to 2 sigma, PPO does not surpass the uniform baseline). The body of #18313 has the same inverted phrase twice; it will be PATCHed separately via 'gh api pulls/18313 -X PATCH --input body.json'. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> Co-authored-by: Claude Haiku 4.5 <claude-haiku-4-5@anthropic.com>
Grain: DEEP/CONTENU (RL notebook) -- lane myia-po-2026:CoursIA
resume
Bras
trl.experimental.ppo.PPOTrainer(le trainer historique deplace, pas supprime) remis en service dansrlpt_0fen section 5bis, aux cotes du bras maison et du bras GRPO. Fille de #16063 (item 6), voir #18171.Changes
GPT2ForSequenceClassification, backbone + tete.score()-- la voie exacte detrl get_reward), meme recette BT que la section 2 (paires derivees de la vraie recompense, min_gap 0.3, flip probabiliste), sur reponses brutes (tout le vocab) puisqueget_rewardevalue la sequence telle que generee.train_ppo_trl: boucle PPO complete tenue par la lib -- rolloutmax_new_tokens, score du juge, GAE (gamma/lam), PPO-clip policy ET value (criticGPT2ForSequenceClassificationappris en ligne, vf_coef=0.5), penalite KL par token (kl_coef=BETA_KL=0.05). Budget apparie : 2304 prompts x 1 passe = 2304 completions (12 updates x 192).hasattr(trl, 'PPOTrainer')(surface racine uniquement) et la prose disait « supprime » -- desormais l'assert teste la surface ou la classe vit reellement (racine vide +trl.experimental.ppopresent), prose « deplace » (points 1-2 de l'acceptance). Lecture chiffree d'ouverture (le fait qui organise le notebook) reecrite sur ce narratif.deplace upstream, passupprime).Multi-seed section 6 (maison vs GRPO) inchange par design : le bras historique est demontre au seed 0 (section 5bis autonome), le cout CPU d'un 3e bras multi-seed n'apportant rien a la question posee par l'issue.
Proof of execution (H.1/D)
notebook_tools.py execute --kernel coursia-sae(env localcoursia-sae: python 3.11.16, torch 2.14.0+cpu, trl 1.9.2 -- la version citee par la mesure ai-01 dans l'issue, seule surface outrl.experimental.ppoexiste). EXEC_PROVED : Success 1 / Failed 0, 644.6 s total.cellule env (surface testee) :
cellule juge (section 5bis) :
cellule bras (section 5bis, fin du run) :
tableau final (section 7) :
grep -nE "raise NotImplementedError|assert False|1/0": 0 hit.execution_countconsecutifs 1..16,outputscoherents (C.2 ; les 2 cellules sans outputs sont des definitions pures, exec non-null). Exercices 1-3 conserves en stubs (3/3).notebook_tools.py validate: 0 erreur (5 warnings LaTeX preexistants sur main, faux positifs$apparies).Verdict SOTA (sota-not-workaround Prong A) : SOTA-OK
Le vrai
trl.experimental.ppo.PPOTrainerest installe (pip trl==1.9.2 dans env dedie cree localement, regle F) et invoque ; les sorties commitees sont sa vraie sortie. Cas de l'issue : RECOVERABLE-LOCAL traite par installation + invocation reelle.Acceptance #18171 mapping
Closes #18171
See #16063
🤖 Generated with Claude Code